import java.util.Arrays;
import java.util.Scanner;

//给你一个整数 n ，对于 0 <= i <= n 中的每个 i ，计算其二进制表示中 1 的个数 ，返回一个长度为 n + 1 的数组 ans 作为答案。
public class test2 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        System.out.println(Arrays.toString(countBits(n)));
    }

    public static int[] countBits(int n) {
        int[] arr = new int[n+1];
        for(int i = 0;i<=n;i++){
            //用来计算每一个数字
            int count = 0;//记录个数,每个数清零
            for(int j=0;j<32;j++){
                //计算第i个数字的个数
                if((i&(1<<j))!=0){
                    count++;
                }
            }
            arr[i] = count;
        }
        return arr;
    }
}
